package top.leinx.fxnotes.pane;

/**
 * @Author : xiaolei
 * @DateTime: 2021/3/19 4:58 下午
 */

import javafx.application.Application;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.Priority;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class HBoxAndVBoxExample extends Application {

    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) {
        BorderPane root = new BorderPane(); // 使用BorderPane作为窗口总体布局

        HBox hBox = new HBox();
        System.out.println(hBox.isFillHeight());
        hBox.setSpacing(5.0);                             // 设置相邻组件的间隔
        hBox.setAlignment(Pos.CENTER);                    // 垂直方向和水平方向均居中
        hBox.setPrefHeight(50.0);                         // 预设高度
        hBox.setStyle("-fx-background-color: lightblue"); // 便于观察

        Button btnPrev = new Button("前一个");
        btnPrev.setMaxHeight(Double.MAX_VALUE);           // 设置按钮的最大高度后，其高度是可以调整的
        // hBox.setFillHeight(false);                        // 设置为false后，btnPrev使用预设高度
        Button btnNext = new Button("后一个");
        Label labelMsg = new Label("数据记录");
        // 添加3个子节点组件
        hBox.getChildren().addAll(btnPrev, labelMsg, btnNext);

        VBox vBox = new VBox();
        vBox.setSpacing(7.5);                             // 设置相邻组件的间隔
        vBox.setAlignment(Pos.TOP_RIGHT);                 // 垂直方向顶部对齐，水平方向右对齐
        vBox.setPrefWidth(100.0);                         // 预设宽度
        vBox.setStyle("-fx-background-color: lightgray"); // 便于观察
        // 添加10个子节点组件
        for (int i = 0; i < 10; i++) {
            vBox.getChildren().add(new Label(String.format("%.3f", Math.random() * 1000.0)));
        }

        root.setTop(hBox);
        root.setLeft(vBox);

        primaryStage.setTitle("HBox 和 VBox 示例");
        primaryStage.setScene(new Scene(root, 400, 300));
        primaryStage.show();
    }
}
